Motion compensation is often employed in connection with compression-coding of image data. The proposed H.264 standard (more formally known as the Advanced Video Coding (AVC) standard, developed by the Joint Video Team (JVT) formed jointly by the Motion Picture Experts Group (MPEG) of the International Organization for Standardization (ISO) and the Video Coding Experts Group (VCEG) of the International Telecommunication Union Telecommunication Standardization Sector (ITU-T)) is an example of a technique for image data compression-coding using motion compensation. In H.264 coding, a rectangular block of pixel data is subtracted from a reference block in a previous frame, and the resulting difference information is transformed to produce co-efficient data. The coefficient data is quantized, and the resulting information is then reordered and entropy encoded for transmission and/or recording.
To take advantage of temporal redundancy in the video signal, even when there is motion and/or camera movement in the picture, the reference block may be displaced in the image frame from the block which is currently being coded. The displacement of the reference block is referred to as “motion compensation”. The process of “motion estimation” determines which pixel block in the previous frame (within a search window) best matches the pixel block which is currently being coded. The displacement between the currently-coded block and the best matching block in the previous frame is indicated by a “motion vector”, which is the result produced by the motion estimation process. The motion vector is included in “side information” that is transmitted along with the transformed, quantized, reordered, entropy-encoded difference information for the current block. The motion compensation allows for a minimization of the differences between the current pixel block and the reference block, so that the amount of data required to be transmitted/recorded can be minimized.
An issue that arises with motion-compensated video compression-coding is the amount of processing required for the coding. Motion estimation may comprise a significant part of the processing burden, particularly when a so-called “full search” algorithm is employed. So-called “fast search” algorithms have also been proposed, in which a reduced search pattern is employed, with small decreases in image quality.